Along with the development of information technology, various hierarchical data can be found in a wide variety of database-related applications that are coming forth increasingly, including forums, mailing lists, business organization charts, content management categories, and product categories. Hierarchies, also known as tree structures, are collections of multiple data nodes where each node has a single parent, and zero or more children (with the exception of the root node, which has no parent). Hierarchical data contains two kinds of information: the structural information pertinent to the hierarchical structure, and the content information pertinent to every node.
The traditional way of visualizing hierarchical data can be roughly classified into three categories: listings, outlines, and tree diagrams.
A listing is generally good at presenting contents of hierarchical data, but cannot well reflect the structural information. Although the disadvantage may be compensated by displaying the locations in the hierarchy next to the items in a listing, it is not an ideal solution since it requires that users themselves parse the path information of the items in the listing.
An outline, being a trade-off between a listing and a tree diagram, summarizes the contents of the items in the listing, showing the structural locations of the items by indentation. A schematic drawing of a file folder hierarchy is shown in FIG. 1.
Lastly, a tree diagram is the most common method for displaying hierarchical data sets that contain more than a few nodes. Icons are used to represent the nodes of the hierarchical data sets in a tree diagram. Moreover, each node can be expanded or collapsed to show or hide its child nodes. A typical tree diagram is the directory tree in a file manager. A tree diagram is inferior to the other two methods in presenting contents, but is much more efficient in presenting the structural information FIG. 2 shows a tree diagram corresponding to the schematic drawing in FIG. 1.
As stated above, all of the three traditional methods have their respective benefits and drawbacks. However, they all share the property of presenting defective structural layouts for very large hierarchical data sets. This is because the size of the display area required by these methods to present hierarchical data will be in direct proportion to the number of the nodes in the hierarchy, and thus the bigger the hierarchical data set is, the larger the display space required by the entire structural layout. A small screen cannot fulfill the requirement of the entire display space of an enormous structural layout. Another problem with tree diagrams is horizontal scrolling. In particular in the case of a small screen, when all of the nodes in a hierarchy are expanded, the tree will become too wide to fit the size of the screen, so that the problem of navigation error in the hierarchy is very likely to arise when the user performs horizontal scrolling on the screen.
To overcome the shortcomings of the traditional visualization techniques, many methods have been proposed to visualize hierarchical data. Among these methods, treemaps have been receiving more and more attention.
A treemap is a method of space-constrained visualization of hierarchical data. It divides the display space into a set of rectangular bounding boxes representing the tree, and uses size and color information to represent the attributes of leaf nodes. A treemap enables users to compare nodes and sub-trees at varying depth in the tree, thereby helping them recognize the entire structural information of the tree. Treemaps were first proposed by Ben Shneiderman during the 1990s, and they are originally designed for visualizing files on a hard drive. The concept of treemaps is described in detail in the article “Tree-maps: A Space-Filling Approach to the Visualization of Hierarchical Information Structures” (Proc. IEEE Visualization '91, IEEE, Piscataway, N.J. (1991), 284-291) by Brian Johnson and Ben Shneiderman.
A treemap has good scalability, and even may be used for presenting an enormous hierarchy having millions of items on a single screen. Therefore treemaps are now applied to a wide variety of domains ranging from financial analysis to sports reporting. However, it's not easy to discern the entire structure of the hierarchical data in a traditional treemap, especially when the hierarchy is very deep, as the presentation of parent-child relationships in a treemap is not obvious and can even be hard to recognize. Since the entire structure is very important for gaining an overview of the hierarchical data, currently there are a plurality of solutions for such a problem, such as a 3D effect presentation of a treemap. However, the computing resources required by such solutions are excessive or the achieved effect is not ideal.
Therefore, there is a need for a method and apparatus for improving the visibility of a treemap, in order to promote further application of treemaps.